package 大数据比赛样题_2020

import org.apache.spark.rdd.RDD
import org.apache.spark.{SparkConf, SparkContext}

object test01 {
  /**
   *   使用Spark统计每个班级学生的人数,将统计好的结果保存到文件中
   * @param args
   */

  def main(args: Array[String]): Unit = {

    // 创建配置
    val conf = new SparkConf().setMaster("local[6]").setAppName("people_count")
    val sc   = new SparkContext(conf)

    // 读取hdfs数据集
    val source = sc.textFile("hdfs://192.168.64.129:9000/user/root/testdata/students.txt")
    //source.take(5).foreach(println(_))

    // 提取转换数据形式
    val people_count = source.map(item => (item.split(",")(4),1))
    //people_count.take(5).foreach(println(_))

    // 统计每个班的人数
    val reduce = people_count.reduceByKey(_+_).sortBy(_._1,ascending = false)
    //reduce.collect().foreach(println(_))

    // 保存结果集
    reduce.saveAsTextFile("src/main/scala/大数据比赛样题/people_count")
  }

}
